package sort.bubbling;

/**
 * 冒泡排序,升序
 * 将最大的数字（就像最大的泡泡一样）依次比较，先冒带末尾去；对第k大的数字也是如此
 * 比较 相邻的元素 。如果第一个比第二个大，就交换他们两个。
 */
public class BuildingSort {

    public void sort(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j<arr.length - i - 1; j++){//交换相邻元素（把最大的泡冒到最后去），i只是用作缩小内层循环的范围
                if (arr[j] > arr[ j + 1]){
                    swapNum(j,j+1,arr);
                }
            }
        }

    }

    private void swapNum(int index1,int index2,int[] arr){
        int temp = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] = temp;
    }

    public static void main(String[] args) {
        int[] ints = {1, 4, 2, 0, 7, 8, 8, 11, 13};
        BuildingSort buildingSort = new BuildingSort();
        buildingSort.sort(ints);
        buildingSort.printArr(ints);
    }

    public void printArr(int[] arr){
        StringBuilder builder = new StringBuilder();
        builder.append("[");
        for (int i = 0; i < arr.length; i++) {
            builder.append(arr[i]+",");
        }
        builder.append("]");
        System.out.println(builder.toString());
    }

}
